The present invention relates generally to expanded memory systems in computer applications. More particularly, the present invention pertains to and provides a means and method for accessing page memory through memory windows that may be utilized by a central processor.
Standard linear memory (0-640K bytes) comprises a conventional memory recognized by current disc operating systems such as MS-DOS or PC-DOS. Expanded memory facility currently encompasses the use of "paged" memory consisting of add-on hardware expansion modules (typically memory and control boards) and a software driver program specific to those modules. Current, typical expanded memory schemes utilize the Expanded Memory Specification (EMS) standard which was developed through the efforts of Lotus, Intel and Microsoft Corporations (LIM). This specification uses a memory window transfer method to implement the expanded memory scheme. Further understanding of this specification may be had by reference to "Inside The IBM PC's, Lotus/Intel/Microsoft Expanded Memory", Byte Magazine, October, 1987 and "The Once and Future Expanded Memory Card", Business Software Magazine, September, 1987. Through a technique known as bank switching, a central processor can access multiple memory pages for further access in a window of predetermined addresses. A 64K byte section of conventional memory address space referred to as the frame is divided into four equal 16K byte sections referred to as memory windows. All expanded memory is transferred through the 64K byte frame. Each expanded memory board has four input/output (I/O) port addresses used to address a particular control register. Each control register is used to access up to 128 memory pages. Each control register has an eight bit control register address associated with it. A seven bit value in position zero to six (0-6) represents the address number of the page requested. Bit seven (7) is a global enable/disable bit which is used to identify (e.g., address) the specific standard memory board sought to be accessed. Each memory page is also 16KB in length. All pages on a particular board form what is known as EMS base memory.
The LIM EMS system is currently capable of expanding its hardware up to four boards, each up to 128 pages of 16 kilobytes per page, yielding a potential system total of 8 megabytes of expanded memory, controlled by four separate memory control circuits. The cost of this extended memory increases with the amount of expanded memory added. Other considerations include the addition of the hardware (boards) plus control circuitry required to support each board. Also, each additional board subtracts from the limited available space within the computer's main frame. This dollar and opportunity cost may, in some applications, represent an unsatisfactory trade-off between expanded memory and the board space needed for other computer functions.
Accordingly, it is an object of the present invention to provide an improved means and method of expanded memory in an MS-DOS, or similar, computer system.
It is yet another object of the present invention to provide an inexpensive and accurate means and method of computer memory expansion of up to four megabytes of memory without the need for additional memory expansion boards or the supporting circuitry.
It is a further object of the present invention to accomplish the task of memory expansion without decreasing the limited available space within the computer main frame.
The present invention provides a method of expanded memory for an MS-DOS compatible system, or a similar microcomputer system, while utilizing minimal additional memory control circuits. The present invention also minimizes the need for additional hardware modules, boards and the extensive circuitry required to support those boards. A preferred embodiment provides up to four megabytes of additional memory with only a slight increase in the size and cost of the control circuitry typically used to add just two megabytes to the system memory. The present invention may also be applied in a separate memory expansion board to provide more than two megabytes of expanded memory in the space now needed for just two megabytes.